Skip to main content

Page Context

当前表单页面的上下文引用。

API

getActionBar()

通过这个方法获取表单页面的按钮区域。通过 actionBar 可以给页面假如自定义的动作按钮。

返回:ActionBar

目前,这个方法只针对 web 端表单和表单模式处于: "create", "edit", "copy" 时候有效,当表单处于 "view" 状态时候是无效的。

actionBar.addButton(...buttons)

参数:ButtonOptions[]

ButtonOptions 类型参数:

名称类型描述
textstring按钮的标签文本。
keystring按钮的识别标识。
disabledboolean按钮可用状态。
visibleboolean按钮可见状态。
onClickFunction点击按钮的执行程序。
menuItemsMenuItem[]按钮的菜单项。

MenuItem 类型参数:

名称类型描述
textstring菜单项的标签文本
disabledboolean菜单项可用状态
onClickFunction点击菜单项的执行程序。
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
// 给表单页面增加一个有两个菜单项的按钮。
// 第一个菜单项给子表增加行
// 第二个菜单项清空子表的所有行
ctx.getPageContext().getActionBar().addButton({
key: 'clickMe',
text: '点我',
menuItems: [
{
text: 'Append Rows',
onClick: () => {
form.getSubGrid('receiptItems').appendRow(); // one
form.getSubGrid('receiptItems').appendRow(); // two
},
},
{
text: 'Clear All Rows',
onClick: () => {
form.getSubGrid('receiptItems').removeAllRows(); // clear all rows
}
}
]
})
}

actionBar.removeButton(key)

在增加的自定义按钮中,找到 key 对应的按钮并且删除。

参数:

  • key: string

actionBar.disableButton(key, disabled)

在增加的自定义按钮中,找到 key 对应的按钮并且设置可用状态为 disabled参数的值。

参数:

  • key: string
  • disabled: boolean

getToolBar()

通过这个方法获可以给智元平台中增加的自定义按钮绑定点击事件, 给设置隐藏显示

返回: ToolBar

toolbar.registerMenuOnClick(apiName, onClick)

给在智元平台中增加的表单右上区,左下区,右下区自定义按钮,注册onClick事件

参数

  • apiNamestring
  • onClick: Function
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
ctx.getPageContext().getToolBar().registerMenuOnClick("csZidingyiAnniu", (event) => {
console.log(event);
})
}

toolbar.registerSubGridOnClick(subgridName, apiName, onClick)

给在智元平台中增加的子表列表按钮,注册onClick事件

参数

  • subgridName: string
  • apiNamestring
  • onClick: Function
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
ctx.getPageContext().getToolBar().registerSubGridOnClick("arContractSubjectMatterItems", "csZiDingYiAnNiu3", (event) => {
console.log(event)
});
}

toolbar.registerSubGridRowOnClick(apiName, onClick)

给在智元平台中增加的子表行操作按钮,注册onClick事件

参数

  • subgridName string
  • apiNamestring
  • onClick: Function
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
ctx.getPageContext().getToolBar().registerSubGridRowOnClick("arContractSubjectMatterItems", "csZiDingYiAnNiu4", (event) => {
console.log(event)
});
}

toolbar.setMenuVisible(apiName, visible)

给在智元平台中增加的表单右上区,左下区,右下区自定义按钮,设置隐藏显示

参数

  • apiNamestring
  • visible: boolean
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
ctx.getPageContext().getToolBar().setMenuVisible("csZiDingYiAnNiu4", false)
}

toolbar.setSubGridVisible(subgridName, apiName, visible)

给在智元平台中增加的子表按钮, 设置隐藏显示

参数

  • subgridName: string
  • apiNamestring
  • visible: boolean
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
ctx.getPageContext().getToolBar().setSubGridVisible("arContractSubjectMatterItems","csZiDingYiAnNiu4", false)
}

toolbar.setSubGridRowVisible(subgridName, rowIndex, apiName, visible)

给在智元平台中增加的表单右上区,左下区,右下区自定义按钮,设置隐藏显示

参数

  • subgridName: string
  • rowIndex: number
  • apiNamestring
  • visible: boolean
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
// 给arContractSubjectMatterItems子表的第二行的csZiDingYiAnNiu4按钮隐藏
ctx.getPageContext().getToolBar().setSubGridRowVisible("arContractSubjectMatterItems", 1, "csZiDingYiAnNiu4", false)

// 给arContractSubjectMatterItems子表上所有的行的csZiDingYiAnNiu4按钮隐藏
ctx.getPageContext().getToolBar().setSubGridVisible("arContractSubjectMatterItems", "csZiDingYiAnNiu4", false)
}

graphql(gql)

通过这个方法直接将gql字符串传递给后端执行。

参数: 只有一个gql查询字符串

返回: Promise<ResponseData>

示例:


thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
ctx.getPageContext().getActionBar().addButton({
key: 'clickMe',
text: '点我',
onClick: async () => {
const resp = await ctx.getPageContext().graphql(
`
{
data: Department(criteriaStr: "((isLeaf=true) AND (exists(select orgDept.id from OrgDepartmentView orgDept where orgDept.legalEntityOrgId in (select ownerLegalEntityOrgId from Organization where id in ('K4WUXS50JUD0011')) and orgDept.departmentId = m.id) ) AND ((disabledTime IS NULL OR TO_TIMESTAMP(1678291200) < disabledTime)) AND ((disabledTime IS NULL OR TO_TIMESTAMP(1678291200) < disabledTime)))", firstResult: 0, maxResult: 200, sorts: [{name: "code", isDesending: false}], actionId: "add", contextField: "department", contextDataScopeOrgIds: ["K4WUXS50JUD0011"], contextObject: "RevenueConfirmation", contextOrgIds: ["K4WUXS50JUD0011"], isDisabledOrgScope: true) {
id
name
code
idPath
parents {
id
name
}
parent {
code
name
id
idPath
}
isLeaf
disabledTime
character {
id
title
}
manager {
id
name
}
executive {
id
name
}
annualNumber
description
_ctrlViewMethod
_ctrlViewFields
}
count: AggregateQueryOne(entity: "Department", criteriaStr: "((isLeaf=true) AND (exists(select orgDept.id from OrgDepartmentView orgDept where orgDept.legalEntityOrgId in (select ownerLegalEntityOrgId from Organization where id in ('K4WUXS50JUD0011')) and orgDept.departmentId = m.id) ) AND ((disabledTime IS NULL OR TO_TIMESTAMP(1678291200) < disabledTime)) AND ((disabledTime IS NULL OR TO_TIMESTAMP(1678291200) < disabledTime)))", actionId: "add", contextField: "department", contextDataScopeOrgIds: ["K4WUXS50JUD0011"], contextObject: "RevenueConfirmation", contextOrgIds: ["K4WUXS50JUD0011"], isDisabledOrgScope: true) {
count: aggr(expr: "count(*)")
}
}


`
);

console.log('api: ',resp.data);

},
})
};

getPassParams()

通过这个方法可以获取通过 eo.dialogs 创建的表单页面中,调用方通过 passParams 传递的参数。